package com.tjmc.company.api.entity;

import com.baomidou.mybatisplus.annotation.*;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import com.tjmc.company.api.enums.JobStatusEnum;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.math.BigDecimal;
import java.time.LocalDateTime;

/**
 * 职位信息表
 *
 * @author recruit
 * @date 2024-11-14 17:07:26
 */
@Data
@TableName("job_info")
@EqualsAndHashCode(callSuper = true)
@Schema(description = "职位信息表")
public class JobInfoEntity extends Model<JobInfoEntity> {


	/**
	* id
	*/
    @TableId(type = IdType.ASSIGN_ID)
    @Schema(description="id")
    private Long id;

	/**
	* 企业ID
	*/
    @Schema(description="企业ID")
    private Long companyId;

	/**
	* 企业名称
	*/
    @Schema(description="企业名称")
    private String companyName;

	/**
	* 职位名称
	*/
    @Schema(description="职位名称")
    private String jobName;

	/**
	 * 职位类别编码
	 */
	@Schema(description="职位类别编码")
	private String jobCategoryNo;

	/**
	* 职位类别
	*/
    @Schema(description="职位类别")
    private String jobCategory;

	/**
	 * 职位性质：全职、兼职
	 */
	@Schema(description="职位性质")
	private String jobProperties;

	/**
	* 工作位置具体信息
	*/
    @Schema(description="工作位置具体信息")
    private String jobLocation;

	/**
	* 工作区域
	*/
    @Schema(description="工作区域")
    private String jobArea;
	/**
	 * 薪资面议：0否1是
	 */
	@Schema(description="薪资面议：0否1是")
	private String jobSalaryNegotiable;
	/**
	* 薪资待遇起始
	*/
    @Schema(description="薪资待遇起始")
    private String jobSalaryStart;

	/**
	 * 薪资待遇结束
	 */
	@Schema(description="薪资待遇结束")
	private String jobSalaryEnd;

	/**
	* 招聘人数
	*/
    @Schema(description="招聘人数")
    private Integer recruitNum;

	/**
	* 工作年限经验
	*/
    @Schema(description="工作年限经验")
    private String workExperience;

	/**
	* 学历
	*/
    @Schema(description="学历")
    private String degree;

	/**
	* 福利待遇
	*/
    @Schema(description="福利待遇")
    private String benefits;

	/**
	* 职位描述
	*/
    @Schema(description="职位描述")
    private String jobInstrucation;

	/**
	* 联系人姓名
	*/
    @Schema(description="联系人姓名")
    private String contactName;

	/**
	* 联系人电话
	*/
    @Schema(description="联系人电话")
    private String contactPhone;

	/**
	* 联系人工作地址
	*/
    @Schema(description="联系人工作地址")
    private String contactWorkLocation;

	/**
	* 联系电话查看权限：0投递后可看1完全隐藏
	*/
    @Schema(description="联系电话查看权限：0投递后可看1完全隐藏")
    private Integer checkContactPhone;

	/**
	* 创建时间
	*/
    @Schema(description="创建时间")
    private LocalDateTime createdAt;

	/**
	* 更新时间
	*/
    @Schema(description="更新时间")
    private LocalDateTime updateAt;
	/**
	 * 职位状态
	 */
	@Schema(description="职位状态")
	private JobStatusEnum status;

	/**
	 * 职位状态描述
	 */
	@Schema(description="职位状态描述")
	private String statusDesc;

	/**
	 * 置顶截至时间：排序优先（仅次于超级置顶）
	 */
	@Schema(description="置顶截至时间：排序优先（仅次于超级置顶）")
	private String topDuration;
	/**
	 * 超级置顶截至时间，排序优先
	 */
	@Schema(description="超级置顶截至时间，排序优先")
	private String superTopDuration;
	/**
	 * 自动刷新周期配置:几个小时
	 */
	@Schema(description="自动刷新周期配置")
	private Integer autoRefreshDuration;
	/**
	 * 是否开启自动刷新
	 */
	@Schema(description="是否开启自动刷新")
	private String autoRefreshFlag;
	/**
	 * 刷新次数不够时是否使用E币刷新1是0否
	 */
	@Schema(description="刷新次数不够时是否使用E币刷新1是0否")
	private String useECoinRefresh;
	/**
	 * 删除标识（0-正常,1-删除）
	 */
	@TableLogic
	@TableField(fill = FieldFill.INSERT)
	@Schema(description = "删除标记,1:已删除,0:正常")
	private String delFlag;

	/**
	 * 创建者
	 */
	@Schema(description="创建者")
	private String createdBy;


	/**
	 * 企业LOGO
	 */
	@Schema(description="企业LOGO")
	@TableField(exist = false)
	private String companyLogo;

	/**
	 * 是否推广职位：1是0否
	 */
	@Schema(description="是否推广职位：1是0否")
	@TableField(exist = false)
	private Integer isPromotion;
	/**
	 * 是否置顶职位：1是0否
	 */
	@Schema(description="是否置顶职位：1是0否")
	@TableField(exist = false)
	private Integer isTop;


	/**
	 * 职位收藏记录ID
	 */
	@Schema(description="职位收藏ID")
	@TableField(exist = false)
	private Long collectLogId;

	/**
	 * 职位收藏记录用户Id
	 */
	@Schema(description="职位收藏记录用户Id")
	@TableField(exist = false)
	private Long accountId;

	/**
	 * 个人查看记录ID
	 */
	@Schema(description="个人查看记录ID")
	@TableField(exist = false)
	private Long readRecordId;


	/**
	 * 职位发布所需E币金额
	 */
	@Schema(description="职位发布所需E币金额")
	@TableField(exist = false)
	private BigDecimal publishECoinAmount;
}
